import Vuex  from  'vuex';
import Vue from  'vue';
Vue.use(Vuex)

import  axios from  'axios'

import  obj   from  './modules/obj'
import  msg1   from  './modules/msg1'
import  books   from  './modules/books'
import  goods   from  './modules/goods'

const store=new  Vuex.Store({
  // strict: true,
  state:{
    // n:1,
    // msg:'hello vuex',
    flag:true,
    userInfo: {
       name: 'tom',
	 	   skills: ['抖音', 'B站', '美团'],
    	 address: '武汉黑马',
       logo: 'https://vuejs.org/images/logo.svg'
       //  https://www.runoob.com/wp-content/uploads/2016/02/react.png
    },
    // books: [
    //   {
    //     "name": "javasript技术内幕",
    //     "price": 100,
    //     "img": "https://img3m7.ddimg.cn/64/26/29120617-1_u_8.jpg"
    //   },
    //   {
    //     "name": "数学之美",
    //     "price": 44,
    //     "img": "https://img3m2.ddimg.cn/18/30/28538352-1_b_5.jpg"
    //   },
    //   {
    //     "name": "认知天性",
    //     "price": 40,
    //     "img": "https://img3m3.ddimg.cn/74/33/1732997153-3_u_3.jpg"
    //   }
    // ],

    books2:[]
  },
  mutations:{
    // setMsg(state,{m,n}){
    //   console.log(m,n,77);
    //   state.msg = m
    // },
    /* 
    两个必须：更改state中的数据必须使用mutations+ 
    触发mutations中的函数必须使用commit
     */
    setLogo:function(state,newLogo){
      state.userInfo.logo=newLogo

    },

    // setNum(state,newN){
    //   // state.n+=newN
    //   state.n=state.n+newN
    // },

    setBooks2(state,newBooks){
      state.books2=newBooks
    }
  },
  getters:{
    // Stotal(state){
    //   return state.books.reduce((sum,item)=>sum+item.price,0)
    // }
  },
  actions:{
    // AddCount(context,m){
    //   // var  count=1;
    //   // setInterval(()=>{
    //   //   count++
    //   //   console.log(count);
    //   // },1000)

    //   setTimeout(()=>{
    //     console.log(context,666);
    //     context.commit('setNum',m)
    //   },2000)
    // },
    async AgetBooks({commit}){
      /* 
      通过使用axios发送请求获取数据
       */
      const  res= await axios('https://www.fastmock.site/mock/37d3b9f13a48d528a9339fbed1b81bd5/book/api/books')
      console.log(res,55);
      commit('setBooks2',res.data.data)
    }

  },
  modules:{
    obj,
    msg1,
    books,
    goods
  }
})

export  default store